<html>
<body>
报告可以转换为记录类的类。
<p>记录类侧重于对不可变数据进行建模，而不是对可扩展行为进行建模。
数据驱动方法的自动隐式实现（例如 <code>equals()</code> 和访问器）有助于减少样板代码。</p>
<p>
  请注意，不是每个类都可以是记录类。 以下是一些限制：
</p>
<ul>
  <li>该类不能有子类。</li>
  <li>类中的所有非 static 字段都必须为 final。</li>
  <li>不得存在初始值设定项、泛型构造函数和原生方法。</li>
</ul>
<p>有关记录类的完整描述，请参阅 <a href="https://docs.oracle.com/javase/specs/jls/se21/html/jls-8.html#jls-8.10">Java 语言规范</a>。</p>
<!-- tooltip end -->
<p>示例：</p>
<pre><code>
  class Point {
    private final double x;
    private final double y;

    Point(double x, double y) {
      this.x = x;
      this.y = y;
    }

    double getX() {
      return x;
    }

    double getY() {
      return y;
    }
  }
</code></pre>
<p>在应用快速修复后：</p>
<pre><code>
  record Point(int x, int y) {
  }
</code></pre>
<p>启用<b>建议重命名访问器方法</b>选项可以自动将 <code>getX()</code>/<code>isX()</code> 访问器重命名为 <code>x()</code>。</p>
<p>
  使用<b>如果成员变得更易于访问</b>选项可以指定当转换将使成员更易于访问时要执行的操作：
<ul>
  <li>选择<b>不建议转换</b>选项可以在成员变得更易于访问时不进行转换。</li>
  <li>选择<b>显示冲突视图</b>选项可以显示受影响的成员并要求继续。 在批处理模式下，将不建议进行转换。</li>
  <li>选择<b>静默转换</b>选项可以在需要时以静默方式提高可访问性。</li>
</ul>
<p>使用<b>禁止转换有以下注解的类</b>列表可在要转换的类中排除其注解匹配指定模式的类。
</p>
<p><small>2020.3 最新变化</small></p>
</body>
</html>